import pandas as pd
import numpy as np

# series的运算
# 1.适用于NumPy数组的运算也适用Series
s1= pd.Series(np.random.randint(10,100,size=5))
print(s1)
# 基础算术运算
print("\n基础算术运算")
print(s1+10)
print(s1-10)
print(s1*2)
print(s1/2)
print(s1//2) # 向下取整
print(s1**2) # 平方
print(s1%2) # 取模

# 2.Series之间的运算
# 在运算中自动对齐
# 如果索引不对应，则补NaN
# series没有广播机制
print("\nSeries之间的运算")
# 两个series长度一样
s2= pd.Series(np.random.randint(10,100,size=3))
s3= pd.Series(np.random.randint(10,100,size=3))
print(s2,s3,sep='\n')
print(s2+s3)
print(s2-s3)
print(s2*s3)
print(s2/s3)
print(s2//s3) # 向下取整
print(s2**s3) # 平方
print(s2%s3) # 取模

# 两个series长度不一样,根据索引计算
# 索引不对应，则补NaN
print("\n两个series长度不一样")
s4= pd.Series(np.random.randint(10,100,size=4))
s5= pd.Series(np.random.randint(10,100,size=3))
print(s4+s5)
# 要想保留所有的index，这需要使用.add()函数
print(s4.add(s5,fill_value=0)) # fill_value=0表示填充，可以是0，也可以是其他值


# 总结：series可以看做是一个有序的字典结构
